package com.baseLearn.learn.designPatterns.proxy.staticProxy;

/**
 * 1.1设计模式-静态代理
 */

public class MainTest {
    public static void main(String[] args) {
        //流程：
        // 1.new TomLayer 创建代理对象
        // 2.new John 创建被代理对象（目标对象）
        // 3.调用代理对象方法

        //优点：
        //在不修改被代理对象方法的基础上对被代理方法进行功能扩充

        //缺点:
        //可维护性差，如果接口增加方法,代理对象和目标对象均需实现并重写方法，过于冗余
        new TomLawyer().help(new John()).talk();
    }
}
